package xyz.magicjson.core.adapter;

import xyz.magicjson.core.model.Message;

import java.util.Map;

/**
 * 协议适配器接口，定义协议适配器必须实现的方法。
 * 所有的协议适配器都必须实现此接口，以支持不同协议的消息处理。
 */
public interface ProtocolAdapter {
    
    /**
     * 初始化适配器
     *
     * @param config 配置参数
     */
    void initialize(Map<String, Object> config);
    
    /**
     * 处理请求消息
     *
     * @param request 请求消息
     * @return 处理后的消息
     */
    Message processRequest(Message request);
    
    /**
     * 处理响应消息
     *
     * @param response 响应消息
     * @return 处理后的消息
     */
    Message processResponse(Message response);
    
    /**
     * 获取支持的协议名称
     *
     * @return 协议名称
     */
    String getProtocol();
    
    /**
     * 启动适配器
     */
    void start();
    
    /**
     * 停止适配器
     */
    void stop();
    
    /**
     * 检查适配器是否已启动
     *
     * @return 如果适配器已启动，则返回true
     */
    boolean isRunning();
} 